#include <iostream>
#include <unordered_map>
#include <algorithm>
using namespace std;
const int N=15;
string s;
string t;
int cnt=0;
unordered_map<string,int> mp;
bool st[N];
void dfs()
{
	if(t.size()==s.size())
	{
		mp[t]=cnt++;
		return;
	}
	for(int i=0;i<s.size();i++)
	{
		if(st[i]==true)
		continue;
		t+=s[i];
		st[i]=true;
		dfs();
		t.pop_back();
		st[i]=false;
	}	
}
int main()
{
	cin>>s;
	string x=s;
	sort(s.begin(),s.end());
	dfs();
	cout<<mp[x]<<endl;
	return 0;
}
